#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test that gettext() in multithreaded applications works correctly if
# different threads operate in different locales referring to the same
# catalog file but with different encodings.

# Let's use two locales that configure already checked for: French.
# The PO file is actually German, not French, but that doesn't matter.

test -d in-th-3 || mkdir in-th-3
test -d in-th-3/fr || mkdir in-th-3/fr
test -d in-th-3/fr/LC_MESSAGES || mkdir in-th-3/fr/LC_MESSAGES

: ${MSGFMT=msgfmt}
${MSGFMT} -o in-th-3/fr/LC_MESSAGES/tstthread.mo "$wabs_srcdir"/intl-thread-3.po

: ${LOCALE_FR=fr_FR}
: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
if test $LOCALE_FR != none && test $LOCALE_FR_UTF8 != none; then
  ../intl-thread-3-prg $LOCALE_FR $LOCALE_FR_UTF8 > in-th-3.out
  case $? in
    0) ;;
    77)
      echo "Skipping test: POSIX per-thread locales not supported"
      Exit 77
      ;;
    *)
      Exit 1
      ;;
  esac
else
  if test -f /usr/bin/localedef; then
    echo "Skipping test: no traditional and modern french locales are installed"
  else
    echo "Skipping test: no traditional and modern french locales are supported"
  fi
  Exit 77
fi

Exit 0
